/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.client.assembler.output;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import fr.generali.accueilclient.client.om.IDonneeMarketing;
import fr.generali.accueilclient.client.om.impl.DonneeMarketing;
import fr.generali.accueilclient.utils.constantes.IConstantes;
import fr.generali.accueilclient.utils.stringbuilder.StringBuilderUtils;
import fr.generali.refservcommuns.rce.demat.servperscom.pty.profilmarketingpersonnes.DtoDonneesMarketing;

/**
 * Transforme un {@link DtoDonneesMarketing} en {@link IDonneeMarketing}
 * 
 * @author selrhazala
 */
@Component("dtoDonneesMarketing2DonneeMarketingConverter")
public class DtoDonneesMarketing2DonneeMarketingConverter implements Converter<List<DtoDonneesMarketing>, IDonneeMarketing> {

    /**
     * LOGGER
     */
    private static final Logger LOGGER = LoggerFactory.getLogger(DtoDonneesMarketing2DonneeMarketingConverter.class);
    
    /**
     * {@inheritDoc}
     */
    public IDonneeMarketing convert(List<DtoDonneesMarketing> listeDtoDonneesMarketing) {
        LOGGER.info("assemble");
        IDonneeMarketing donneeMarketing = new DonneeMarketing();
        
//        donnee.setCodeDonneesMarketing(input.getCodeDonneesMarketing());
//        donnee.setCodeIndicateurMarketing(input.getCodeIndicateurMarketing());
        
        for (DtoDonneesMarketing dtoDonneesMarketing : listeDtoDonneesMarketing) {
            if (dtoDonneesMarketing != null) {
            	
            	// dans le cas d'un PART
                if (dtoDonneesMarketing.getCodeIndicateurMarketing().equalsIgnoreCase(
                                IConstantes.TYPE_DE_CLIENT_PART)) {
                    donneeMarketing.setTypeProfilMarketing(dtoDonneesMarketing.getCodeIndicateurMarketing() 
                                                    + StringBuilderUtils.SEPARATOR_TIRET_ESPACE
                                                    + dtoDonneesMarketing.getCodeDonneesMarketing());
                }
    
                if (dtoDonneesMarketing.getCodeIndicateurMarketing().equalsIgnoreCase(
                                IConstantes.PRODUITS_A_PROPOSER_PART)) {
                    donneeMarketing.setProduitProfilMarketing(dtoDonneesMarketing.getCodeIndicateurMarketing() 
                                                    + StringBuilderUtils.SEPARATOR_TIRET_ESPACE
                                                    + dtoDonneesMarketing.getCodeDonneesMarketing());
                }
    
                if (dtoDonneesMarketing.getCodeIndicateurMarketing().equalsIgnoreCase(
                                IConstantes.PROFIL_CLIENT_PART)) {
                    donneeMarketing.setClientProfilMarketing(dtoDonneesMarketing.getCodeIndicateurMarketing() 
                                                    + StringBuilderUtils.SEPARATOR_TIRET_ESPACE
                                                    + dtoDonneesMarketing.getCodeDonneesMarketing());
                }
    
                if (dtoDonneesMarketing.getCodeIndicateurMarketing().equalsIgnoreCase(
                                IConstantes.RISQUE_DEPART_PART)) {
                    donneeMarketing.setRisqueProfilMarketing(dtoDonneesMarketing.getCodeIndicateurMarketing() 
                                                    + StringBuilderUtils.SEPARATOR_TIRET_ESPACE
                                                    + dtoDonneesMarketing.getCodeDonneesMarketing());
                }
                if (dtoDonneesMarketing.getCodeIndicateurMarketing().equalsIgnoreCase(
                                IConstantes.ARGUMENTAIRE_DE_VENTE_PART)) {
                    donneeMarketing.setArgumentaireDeVente(dtoDonneesMarketing.getCodeIndicateurMarketing() 
                                                    + StringBuilderUtils.SEPARATOR_TIRET_ESPACE
                                                    + dtoDonneesMarketing.getCodeDonneesMarketing());
                }
                
                // dans le cas d'un PRO
                if (dtoDonneesMarketing.getCodeIndicateurMarketing().equalsIgnoreCase(
		                        IConstantes.TYPE_DE_CLIENT_PRO)) {
		            donneeMarketing.setTypeProfilMarketing(dtoDonneesMarketing.getCodeIndicateurMarketing() 
		                                            + StringBuilderUtils.SEPARATOR_TIRET_ESPACE
		                                            + dtoDonneesMarketing.getCodeDonneesMarketing());
		        }
		
		        if (dtoDonneesMarketing.getCodeIndicateurMarketing().equalsIgnoreCase(
		                        IConstantes.PRODUITS_A_PROPOSER_PRO)) {
		            donneeMarketing.setProduitProfilMarketing(dtoDonneesMarketing.getCodeIndicateurMarketing() 
		                                            + StringBuilderUtils.SEPARATOR_TIRET_ESPACE
		                                            + dtoDonneesMarketing.getCodeDonneesMarketing());
		        }
		
		        if (dtoDonneesMarketing.getCodeIndicateurMarketing().equalsIgnoreCase(
		                        IConstantes.PROFIL_CLIENT_PRO)) {
		            donneeMarketing.setClientProfilMarketing(dtoDonneesMarketing.getCodeIndicateurMarketing() 
		                                            + StringBuilderUtils.SEPARATOR_TIRET_ESPACE
		                                            + dtoDonneesMarketing.getCodeDonneesMarketing());
		        }
		
		        if (dtoDonneesMarketing.getCodeIndicateurMarketing().equalsIgnoreCase(
		                        IConstantes.RISQUE_DEPART_PRO)) {
		            donneeMarketing.setRisqueProfilMarketing(dtoDonneesMarketing.getCodeIndicateurMarketing() 
		                                            + StringBuilderUtils.SEPARATOR_TIRET_ESPACE
		                                            + dtoDonneesMarketing.getCodeDonneesMarketing());
		        }
		        if (dtoDonneesMarketing.getCodeIndicateurMarketing().equalsIgnoreCase(
		                        IConstantes.ARGUMENTAIRE_DE_VENTE_PRO)) {
		            donneeMarketing.setArgumentaireDeVente(dtoDonneesMarketing.getCodeIndicateurMarketing() 
		                                            + StringBuilderUtils.SEPARATOR_TIRET_ESPACE
		                                            + dtoDonneesMarketing.getCodeDonneesMarketing());
		        }
            }
        }
        return donneeMarketing;
    }
}
